package com.settlement.system.model.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelProperty;
import java.util.HashMap;
import java.util.Map;
import java.time.LocalDate;

/**
* <p>
* 凭证主表导入VO
* </p>
*
* @author huangrensen
* @since 2024-08-26
*/
@Schema
@Data
public class SysVoucherImportVo implements Serializable {
    @ExcelProperty(value = "账簿编码")
    private String accountBookId;
    @ExcelProperty(value = "账簿名称")
    private String accountBookName;
    @ExcelProperty(value = "日期")
    private String voucherDate;
    @ExcelProperty(value = "业务日期")
    private String businessDate;
    @ExcelProperty(value = "会计年度")
    private String voucherYear;
    @ExcelProperty(value = "记账月")
    private String voucherMonth;
    @ExcelProperty(value = "核算组织编码")
    private String orgId;
    @ExcelProperty(value = "核算组织名称")
    private String orgName;
    @ExcelProperty(value = "创建人")
    private String createBy;

    @ExcelProperty(value = "凭证主表id")
    private String voucherId;
    @ExcelProperty(value = "摘要")
    private String explanation;
    @ExcelProperty(value = "末级科目编码")
    private String lastCode;
    @ExcelProperty(value = "一级科目名称")
    private String firstName;
    @ExcelProperty(value = "末级科目名称")
    private String lastName;
    @ExcelProperty(value = "银行编码")
    private String bankCode;
    @ExcelProperty(value = "银行名称")
    private String bankName;
    @ExcelProperty(value = "银行账号编码")
    private String bankAccountCode;
    @ExcelProperty(value = "银行账号名称")
    private String bankAccountName;
    @ExcelProperty(value = "部门编码")
    private String deptCode;
    @ExcelProperty(value = "部门名称")
    private String deptName;
    @ExcelProperty(value = "供应商编码")
    private String supplierCode;
    @ExcelProperty(value = "供应商名称")
    private String supplierName;
    @ExcelProperty(value = "客户编码")
    private String customerCode;
    @ExcelProperty(value = "客户名称")
    private String customerName;
    @ExcelProperty(value = "原币金额")
    private String amount;
    @ExcelProperty(value = "借方金额")
    private String debitAmount;
    @ExcelProperty(value = "贷方金额")
    private String creditAmount;
    @ExcelProperty(value = "币别编码")
    private String currencyCode = "PRE001";
    @ExcelProperty(value = "币别名称")
    private String currencyName = "人民币";
    @ExcelProperty(value = "汇率类型编码")
    private String rateCode = "HLTX01_SYS";
    @ExcelProperty(value = "汇率类型名称")
    private String rateName = "固定汇率";
    @ExcelProperty(value = "汇率")
    private String rate = "1";

    public static Map<String, String> getKeyMap(){
        Map<String, String> map = new HashMap<>();
        map.put("账簿编码", "accountBookId");
        map.put("账簿名称", "accountBookName");
        map.put("日期", "voucherDate");
        map.put("业务日期", "businessDate");
        map.put("会计年度", "voucherYear");
        map.put("记账月", "voucherMonth");
        map.put("核算组织编码", "orgId");
        map.put("核算组织名称", "orgName");
        map.put("创建人", "createBy");
        return map;
    }
}
